數據流圖為組織理解、完善和實施新流程或系統提供了一種直接、有效的方式。它們是您的流程或系統的可視化表示,因此它們易於理解和修剪。資料流程圖為組織提供了一種直接和有效的方法來理解、細化和實現新的過程或系統。 它們是流程或系統的視覺化表示,囙此很容易理解和修改。在我們深入研究資料流程圖如何幫助改進任何業務系統或流程之前,讓我們先看看它到底是什麼。
資料流程圖(DFD)是通過流程或系統的信息流的視覺化表示。DFD幫助您更好地瞭解流程或系統操作,以發現潜在問題、提高效率並開發更好的流程。它們的範圍從簡單的概述到複雜的、細粒度的流程或系統顯示。
DFD在20世紀70年代開始流行,並且由於易於理解而保持了廣泛的使用。視覺化顯示流程或系統的工作方式比文字塊更能吸引人們的注意力並更好地解釋複雜概念,因此DFD能够幫助幾乎所有人掌握系統或流程的邏輯和功能。
DFD有兩種類型-
您可以使用邏輯圖或物理圖來描述相同的信息流,也可以將它們結合使用,以便在更細粒度的級別上理解流程或系統。但是,在使用DFD瞭解系統或流程的信息流之前,您需要知道用於描述它的標準符號或符號。
資料流程圖符號
資料流程圖符號是標準化符號,如矩形、圓形、箭頭和短文字標籤,用於描述系統或流程的資料流程方向、資料登錄、數據輸出、資料存儲點及其各種子流程。
DFDs中有四種常用的標記法:Yourdon&De Marco、Gene&Sarson、SSADM和Unified。它們都使用相同的標籤和相似的形狀來表示DFD的四個主要元素—外部實體、流程、資料存儲和資料流程。
外部實體也稱為終結器、源、匯或參與者,是向圖解系統發送數據或從圖解系統接收數據的外部系統或行程。它們要麼是資訊的來源,要麼是資訊的目的地,囙此它們通常被放置在圖表的邊緣。外部實體符號在不同的模型中是相似的,但Unified除外,它使用棒狀圖形,而不是矩形、圓形或正方形。
過程是一個過程,通過獲取傳入數據、更改數據並生成輸出來操縱數據及其流。一個行程可以通過執行計算和使用邏輯對數據進行排序,或者改變資料流程的方向來實現這一點。流程通常從DFD的左上角開始,在圖的右下角結束。
資料存儲保存資訊供以後使用,就像等待處理的檔案檔案一樣。資料登錄流經一個流程,然後流經一個資料存儲,而數據輸出流經一個資料存儲,然後流經一個流程。
資料流程是系統資訊通過流程和資料存儲從外部實體獲取的路徑。通過箭頭和簡潔的標籤,DFD可以向您顯示資料流程的方向。
在開始繪製資料流程圖之前,您需要遵循四個最佳實踐來創建有效的DFD。
DFD的範圍可以從簡單的概述到複雜的系統或流程的細微性表示,從級別0開始,具有多個級別。最常見和直觀的DFD是0級DFD,也稱為上下文圖。它們是通過系統或流程的信息流的可消化的、高層次的概述,囙此幾乎任何人都能理解它。
級別0:上下文關係圖
此DFD級別側重於高級系統進程或功能以及流入或流出它們的資料來源。0級圖表旨在簡單、直觀地概述流程或系統。
第1級:過程分解
雖然1級DFD仍然是對系統或流程的廣泛概述,但它們也更為詳細——它們將系統的單個流程節點分解為子流程。
第二級:深度潜水
DFD的下一個級別通過將每個級別1流程分解為細粒度的子流程來深入瞭解細節。
級別3:新增複雜性
3級和更高編號的DFD並不常見。這在很大程度上是由於需要大量的細節,這違背了其易於理解的初衷。
DFD的範圍可以從簡單的概述到複雜的系統或流程的細微性表示,從級別0開始,具有多個級別。最常見和直觀的DFD是0級DFD,也稱為上下文圖。它們是通過系統或流程的信息流的可消化的、高層次的概述,囙此幾乎任何人都能理解它。
此DFD級別側重於高級系統進程或功能以及流入或流出它們的資料來源。0級圖表旨在簡單、直觀地概述流程或系統。
雖然1級DFD仍然是對系統或流程的廣泛概述,但它們也更為詳細——它們將系統的單個流程節點分解為子流程。
DFD的下一個級別通過將每個級別1流程分解為細粒度的子流程來深入瞭解細節。
3級和更高編號的DFD並不常見。這在很大程度上是由於需要大量的細節,這違背了其易於理解的初衷。
下圖顯示了為證券交易平台繪製的上下文數據流圖。它包含一個表示要建模的系統的過程(形狀),在本例中為“證券交易平台”。它還顯示將與系統交互的參與者,稱為外部實體。在此示例中,CS Assistant、_Customer_和_Broker_是將與系統交互的實體。在流程與外部實體之間,存在數據流(連接器),表明實體與系統之間存在信息交換。
上下文 DFD 是數據流模型的入口。它只包含一個進程,不顯示任何數據存儲。
下圖為1級DFD,即上下文DFD所示的證券交易平台流程的分解(即分解)。通讀該圖,然後我們將基於該圖介紹一些關鍵概念。
證券交易平台數據流圖示例包含五個流程、三個外部實體和三個數據存儲。儘管沒有設計指南來管理數據流圖中形狀的定位,但我們傾向於將流程放在中間,將數據存儲和外部實體放在兩側,以便於理解。
根據圖表,我們知道_客戶服務助理_向_開戶_流程提供客戶詳細信息。結果是_客戶詳細信息_存儲在_客戶_數據存儲中,_帳戶詳細信息_存儲在_帳戶_數據存儲中。儘管我們說過在_客戶服務助理_提供詳細信息之後會嘗試存儲客戶和帳戶詳細信息,但數據流圖並未暗示這樣的事情。是我們的常識引導我們以自然理解的方式解釋圖表。嚴格來說,該圖只告訴我們_開戶_流程接收_客戶詳細信息_並生成客戶和帳戶詳細信息,沒有指定訂單。請注意,數據流圖沒有回答在整個系統中以何種方式和順序使用信息。如果此信息很重要且值得一提,請考慮使用BPMN 業務流程圖或UML 活動圖等圖表對其進行建模。
流程_Check Transaction_從_Transaction_數據存儲接收_Transaction 詳細信息_並將其傳遞給_Customer_。
一個_客戶_能_存入現金_通過提供_存款金額_,結果是_更新的帳戶餘額_存儲在_客戶_數據存儲。
同樣,客戶_可以_提取現金。結果是他將收到_取款金額_,_更新後的賬戶餘額_將存儲在_賬戶_數據存儲中。
最後,客戶_和_經紀人_都可以啟動下_訂單_流程,這會導致_交易詳細信息_存儲在_交易_數據存儲中。下_訂單_流程還將_交易詳細信息_傳遞給_證券交易所中心,這是系統範圍之外的實體。在下一節中,我們將介紹一種表示這種實體的方法。
就像上下文 DFD 中的流程一樣,級別 1 DFD 中的流程也可以分解為更深層次甚至更多的流程細節層次。下圖顯示了_Place Order_流程的2 級 DFD 。
此 DFD 中的外部實體和數據存儲與上層(即上圖)所示的實體和數據存儲相對應。不同之處在於下_單_流程細分為下_單(在線)_流程和下_單(離線)_流程。
根據此圖表,我們知道,_客戶_可以進行_下訂單(在線)通過提供_訂購詳細_而_經紀人_可以進行_下訂單(電話)通過提供也_令細節; 在任何一種情況下都會導致_交易_詳細信息存儲在_交易_數據存儲中並傳遞到_證券交易所中心。
當看到從數據存儲連接到進程的連接器時,一些設計人員可能會感到不舒服,而沒有看到圖中以某種方式顯示的數據請求步驟。他們中的一些人會嘗試通過在進程和數據存儲之間添加連接器來表示請求,將其標記為“請求”或“請求某物”,這是錯誤的。
請記住,數據流圖是為表示信息交換而設計的。數據流圖中的連接器用於表示數據,而不是用於表示流程、步驟或其他任何內容。當我們將終止於數據存儲的數據流標記為“請求”時,這字面意思是我們將請求作為數據傳遞到數據存儲中。儘管在實現級別可能是這種情況,因為某些 DBMS 確實支持使用函數,這些函數將一些值作為參數並返回結果,但在數據流圖中,我們傾向於將數據存儲視為唯一的數據持有者具備任何處理能力。如果要對系統流或流程流建模,請改用 UML 活動圖或 BPMN 業務流程圖。如果要對數據存儲的內部結構進行建模,請使用實體關係圖。